/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.isfd.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.comac.ins.common.mybatis.core.mapper.BaseMapperPlus;
import com.comac.ins.isfd.domain.IsfdModelManagementPart;
import com.comac.ins.isfd.domain.vo.IsfdModelManagementPartOuterVo;
import com.comac.ins.isfd.domain.vo.IsfdModelManagementPartVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;


/**
 * 模型管理零件Mapper接口
 *
 * @author Lion Li
 * @date 2024-08-14
 */
@Mapper
public interface IsfdModelManagementPartMapper extends BaseMapperPlus<IsfdModelManagementPart, IsfdModelManagementPartVo> {

    Page<IsfdModelManagementPartOuterVo> queryPageList(@Param("page") Page<IsfdModelManagementPart> page,
                                                       @Param(Constants.WRAPPER) Wrapper<IsfdModelManagementPart> queryWrapper);


    IsfdModelManagementPartOuterVo queryByPartNumber(@Param("modelNumber") String modelNumber,
                                                     @Param("batchNumber") String batchNumber,
                                                     @Param("sectionNumber") String sectionNumber,
                                                     @Param("componentNumber") String componentNumber,
                                                     @Param("partNumber") String partNumber);

    List<IsfdModelManagementPartOuterVo> queryList(@Param("partIdList") List<Long> partIdList);

    List<IsfdModelManagementPartOuterVo> selectPart(@Param("modelNumberSet") Set<String> modelNumberSet,
                                                    @Param("batchNumberSet") Set<String> batchNumberSet,
                                                    @Param("sectionNumberSet") Set<String> sectionNumberSet,
                                                    @Param("componentNumberSet") Set<String> componentNumberSet);
}
